package userModel

import (
	"forum/app/model"
	userData "forum/app/structData/user"
	"time"
)

// GetUserInfoHandler 获取用户信息
func GetUserInfoHandler(userMap map[string]any) *userData.User {
	field := "id,username,password,created_time,status"
	// 创建数据库操作实例
	db := model.CURD{DB: model.DB}

	// 查询用户是否存在
	userInfo, err := db.Table("user").Fields(field).Where(userMap).Select()

	if err != nil {
		return nil // 将错误抛出
	}

	var user userData.User
	// 处理查询结果
	if userInfo.Next() {
		err = userInfo.Scan(&user.Id, &user.Username, &user.Password, &user.CreateTime, &user.Status)
		if err != nil { // 处理扫描错误
			return nil
		}
		return &user
	} else {
		// 检查是否有查询错误
		if err := userInfo.Err(); err != nil {
			return nil
		}
		return nil
	}
}

// 创建用户
func CreateUser(user map[string]any) bool {
	db := model.CURD{DB: model.DB}

	userInfo := map[string]any{
		"username":    user["username"].(string),
		"password":    user["password"].(string),
		"create_time": time.Now().Unix(),
		"status":      "1",
	}

	db.Table("user").Insert(userInfo)
	return true
}
